import { get, post, put, del } from '@/utils/common'

// 用户相关接口
export const userApi = {
  // 登录
  login: (data) => post('/api/user/login', data),
  
  // 注册
  register: (data) => post('/api/user/register', data),
  
  // 获取用户信息
  getUserInfo: () => get('/api/user/info'),
  
  // 更新用户信息
  updateUserInfo: (data) => put('/api/user/info', data),
  
  // 修改密码
  changePassword: (data) => put('/api/user/password', data),
  
  // 获取收货地址列表
  getAddressList: () => get('/api/user/address'),
  
  // 添加收货地址
  addAddress: (data) => post('/api/user/address', data),
  
  // 更新收货地址
  updateAddress: (id, data) => put(`/api/user/address/${id}`, data),
  
  // 删除收货地址
  deleteAddress: (id) => del(`/api/user/address/${id}`),
  
  // 设置默认收货地址
  setDefaultAddress: (id) => put(`/api/user/address/${id}/default`)
}

// 商品相关接口
export const productApi = {
  // 获取商品列表
  getProductList: (params) => get('/api/product/list', params),
  
  // 获取商品详情
  getProductDetail: (id) => get(`/api/product/${id}`),
  
  // 获取商品分类
  getCategoryList: () => get('/api/product/category'),
  
  // 获取商品评论
  getProductComments: (id, params) => get(`/api/product/${id}/comments`, params),
  
  // 添加商品评论
  addProductComment: (id, data) => post(`/api/product/${id}/comment`, data),
  
  // 收藏商品
  favoriteProduct: (id) => post(`/api/product/${id}/favorite`),
  
  // 取消收藏商品
  unfavoriteProduct: (id) => del(`/api/product/${id}/favorite`),
  
  // 获取收藏列表
  getFavoriteList: (params) => get('/api/product/favorite', params)
}

// 购物车相关接口
export const cartApi = {
  // 获取购物车列表
  getCartList: () => get('/api/cart/list'),
  
  // 添加商品到购物车
  addToCart: (data) => post('/api/cart/add', data),
  
  // 更新购物车商品数量
  updateCartQuantity: (id, data) => put(`/api/cart/${id}`, data),
  
  // 删除购物车商品
  deleteCartItem: (id) => del(`/api/cart/${id}`),
  
  // 清空购物车
  clearCart: () => del('/api/cart/clear'),
  
  // 选择购物车商品
  selectCartItem: (id, selected) => put(`/api/cart/${id}/select`, { selected }),
  
  // 全选/取消全选购物车商品
  selectAllCartItems: (selected) => put('/api/cart/select-all', { selected })
}

// 订单相关接口
export const orderApi = {
  // 创建订单
  createOrder: (data) => post('/api/order/create', data),
  
  // 获取订单列表
  getOrderList: (params) => get('/api/order/list', params),
  
  // 获取订单详情
  getOrderDetail: (id) => get(`/api/order/${id}`),
  
  // 取消订单
  cancelOrder: (id) => put(`/api/order/${id}/cancel`),
  
  // 确认收货
  confirmOrder: (id) => put(`/api/order/${id}/confirm`),
  
  // 删除订单
  deleteOrder: (id) => del(`/api/order/${id}`),
  
  // 申请退款
  applyRefund: (id, data) => post(`/api/order/${id}/refund`, data),
  
  // 获取退款详情
  getRefundDetail: (id) => get(`/api/order/${id}/refund`),
  
  // 取消退款
  cancelRefund: (id) => put(`/api/order/${id}/refund/cancel`)
}

// 支付相关接口
export const paymentApi = {
  // 创建支付订单
  createPayment: (data) => post('/api/payment/create', data),
  
  // 查询支付结果
  queryPayment: (id) => get(`/api/payment/${id}`),
  
  // 取消支付
  cancelPayment: (id) => put(`/api/payment/${id}/cancel`)
}

// 优惠券相关接口
export const couponApi = {
  // 获取优惠券列表
  getCouponList: (params) => get('/api/coupon/list', params),
  
  // 领取优惠券
  receiveCoupon: (id) => post(`/api/coupon/${id}/receive`),
  
  // 获取我的优惠券
  getMyCoupons: (params) => get('/api/coupon/my', params),
  
  // 使用优惠券
  useCoupon: (id) => put(`/api/coupon/${id}/use`)
}

// 系统相关接口
export const systemApi = {
  // 获取系统配置
  getConfig: () => get('/api/system/config'),
  
  // 获取轮播图
  getBanners: () => get('/api/system/banners'),
  
  // 获取公告列表
  getNotices: (params) => get('/api/system/notices', params),
  
  // 获取公告详情
  getNoticeDetail: (id) => get(`/api/system/notice/${id}`),
  
  // 上传文件
  uploadFile: (filePath) => {
    return new Promise((resolve, reject) => {
      uni.uploadFile({
        url: '/api/system/upload',
        filePath,
        name: 'file',
        success: (res) => {
          const data = JSON.parse(res.data)
          if (data.code === 0) {
            resolve(data.data)
          } else {
            reject(data)
          }
        },
        fail: reject
      })
    })
  }
} 